Managing network bandwidth has become increasingly problematic as ever increasing numbers of users transmit voluminous amounts of data and compete for limited resources. A variety of solutions have been adopted to address these problems.
Generally, high performance networks will deploy caching solutions for improving the timely delivery of network data. Caching hardware or software permits data that has been accessed at least once before to remain in memory or storage for some configurable period of time, such that when the data is needed a subsequent time it is immediately available in the cache, assuming the data has not become stale. However, caching alone is not a sufficient solution for today's complex networks, because caching does not address scheduling and does not assist when data is flushed or not initially available from the cache.
As a result, network administrators have augmented traditional caching solutions with a Content Distribution Network (CDN). A CDN is used for more intelligent caching, scheduling, and routing of data. A CDN makes determinations about what type of data is frequently accessed and acquires that data in cache before any request is made for that data. Thus, a CDN makes frequently accessed data available to a first requestor and provides continual service to that data via the cache. A CDN also provides intelligent routing and scheduling of data over a network.
However, some CDNs suffer from the inability to communicate priorities or manage priorities in an integrated fashion with other traffic that is not being managed by the CDNs. As a result, non CDN activity can unduly suffer in a network which deploys a CDN. Recent advances developed by Novell Inc. of Provo, Utah have addressed this problem by integrating CDN priorities with other non-CDN network applications.
As a practical matter, priorities can include the enforcement of a variety of constraints which form multiple dependencies. Thus, priorities themselves are not linear but often can be hierarchical. For example, within an organization each group may be assigned a network traffic priority, but within each group there may be other constraints such as time of day that resources or data are needed or specific data delivery rates which are required for certain applications to operate properly. Moreover, a group may be physically dispersed across multiple sites and each site may have its own constraints, such as a defined bandwidth limit and the like. Thus, priorities can include multiple dependencies associated with multiple constraint policies.
Additionally, because a variety of applications manage network traffic any single solution will not have control over all traffic. For example, a CDN may not be capable of controlling an enterprise-wide email system. Thus, the CDN cannot directly control the network bandwidth of the email system, but the CDN can indirectly adversely impact the bandwidth available to the email system if the CDN is not aware of the email system. Thus, network traffic management solutions should be aware of important traffic over which it has not control.
Furthermore, it is advantageous for any adopted network traffic management solution to be capable of controlling the transmission rates of senders to the network based on the priorities, constraints, and applications being managed. This capability would permit a network traffic management solution to better manage network traffic, since undesirable traffic can be partially controlled and will not have to be processed at transmission rates which are not desired based on existing priorities.
Thus, there is a need for a network traffic management solution that manages traffic based on multiple constraints associated with multiple priorities and that further assists in controlling the transmission rates of data being received from senders of a network.